home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Freelog Special Edition 13
/
FreelogHS13.iso
/
P To P
/
Emule24b_Morph_Mod_V4b-binary
/
Webserver
/
list.js
< prev
next >
Wrap
Text File
|
2003-01-10
|
17KB
|
550 lines
var oList=new Array();
oList.borderSize=1;
function createList(x,y,w,h)
{
var num=oList.length;
num++;
var str="";
str+='<div id="divLWin'+num+'" class="clLWin" onMousemove="oList['+num+'].lmove();" onMousedown="oList['+num+'].ldown();return false;" onMouseup="oList['+num+'].lup();">'
+'<div id="divResizeLine'+num+'" class="clListLine" onMouseup="oList['+num+'].lup();return false;"></div>'
+'<div id="divList'+num+'" class="clList">'
+'<div id="divListText'+num+'" class="clListText"></div>'
+'</div>'
+'<div id="divListUp'+num+'" class="clListUp">'
+'<a href="#" onclick="return false" onmousedown="oList['+num+'].move(0,13);" onmouseup="oList['+num+'].move(0,0);" onmouseout="oList['+num+'].move(0,0);"><img src="images/arrow_up.gif" width="15" height="15" alt="" border="0"></a>'
+'</div>'
+'<div id="divListDown'+num+'" class="clListDown">'
+'<a href="#" onclick="return false" onmousedown="oList['+num+'].move(0,-13);" onmouseup="oList['+num+'].move(0,0);" onmouseout="oList['+num+'].move(0,0);"><img src="images/arrow_down.gif" width="15" height="15" alt="" border="0"></a>'
+'</div>'
+'<div id="divListSliderY'+num+'" class="clListSlider" onMousemove="oList['+num+'].processSlider();" onmousedown="oList['+num+'].startSlider(false,true);" onmouseup="oList['+num+'].endSlider();" onmouseout="oList['+num+'].endSlider();"></div>'
+'<div id="divListSliderYtop'+num+'" class="clListSlider2" onmousedown="oList['+num+'].move(0,50);" onmouseup="oList['+num+'].move(0,0);" onmouseout="oList['+num+'].move(0,0);"></div>'
+'<div id="divListSliderYbut'+num+'" class="clListSlider2" onmousedown="oList['+num+'].move(0,-50);" onmouseup="oList['+num+'].move(0,0);" onmouseout="oList['+num+'].move(0,0);"></div>'
+'<div id="divListLeft'+num+'" class="clListLeft">'
+'<a href="#" onclick="return false" onmousedown="oList['+num+'].move(5,0);" onmouseup="oList['+num+'].move(0,0);" onmouseout="oList['+num+'].move(0,0);"><img src="images/arrow_left.gif" width="15" height="15" alt="" border="0"></a>'
+'</div>'
+'<div id="divListRight'+num+'" class="clListRight">'
+'<a href="#" onclick="return false" onmousedown="oList['+num+'].move(-5,0);" onmouseup="oList['+num+'].move(0,0);" onmouseout="oList['+num+'].move(0,0);"><img src="images/arrow_right.gif" width="15" height="15" alt="" border="0"></a>'
+'</div>'
+'<div id="divListSliderX'+num+'" class="clListSlider" onMousemove="oList['+num+'].processSlider();" onmousedown="oList['+num+'].startSlider(true,false);" onmouseup="oList['+num+'].endSlider();" onmouseout="oList['+num+'].endSlider();"></div>'
+'<div id="divListSliderXleft'+num+'" class="clListSlider2" onmousedown="oList['+num+'].move(50,0);" onmouseup="oList['+num+'].move(0,0);" onmouseout="oList['+num+'].move(0,0);"></div>'
+'<div id="divListSliderXright'+num+'" class="clListSlider2" onmousedown="oList['+num+'].move(-50,0);" onmouseup="oList['+num+'].move(0,0);" onmouseout="oList['+num+'].move(0,0);"></div>'
+'</div>';
document.write(str);
var bs=oList.borderSize;
oList[num]=new lib_obj('divLWin'+num,"","","",num);
oList[num].width=w;
oList[num].height=h;
oList[num].moveIt(x,y);
oList[num].clipTo(0,w,h,0);
oList[num].oList=new lib_obj('divList'+num,'divLWin'+num);
oList[num].oList.moveIt(0,0);
oList[num].oList.clipTo(0,w-15-bs,h-15-bs,0,1);
oList[num].oListText=new lib_obj('divListText'+num,'divList'+num,'divLWin'+num);
oList[num].oListText.moveIt(bs,bs);
oList[num].oListText.clipTo(0,1000,h-3*bs-15,0,1);
oList[num].oResizeLine=new lib_obj('divResizeLine'+num,'divLWin'+num);
oList[num].oResizeLine.moveIt(0,16);
oList[num].oResizeLine.clipTo(0,1,h-3*bs-15,0,1);
oList[num].oUp=new lib_obj('divListUp'+num,'divLWin'+num);
oList[num].oDown=new lib_obj('divListDown'+num,'divLWin'+num);
oList[num].oLeft=new lib_obj('divListLeft'+num,'divLWin'+num);
oList[num].oRight=new lib_obj('divListRight'+num,'divLWin'+num);
oList[num].oUp.moveIt(w-bs-15,1);
oList[num].oDown.moveIt(w-bs-15,h-bs-30);
oList[num].oLeft.moveIt(1,h-bs-15);
oList[num].oRight.moveIt(w-bs-30,h-bs-15);
oList[num].oSliderY=new lib_obj('divListSliderY'+num,'divLWin'+num);
oList[num].oSliderYtop=new lib_obj('divListSliderYtop'+num,'divLWin'+num);
oList[num].oSliderYbut=new lib_obj('divListSliderYbut'+num,'divLWin'+num);
oList[num].oSliderX=new lib_obj('divListSliderX'+num,'divLWin'+num);
oList[num].oSliderXleft=new lib_obj('divListSliderXleft'+num,'divLWin'+num);
oList[num].oSliderXright=new lib_obj('divListSliderXright'+num,'divLWin'+num);
oList[num].xPos = x;
oList[num].yPos = y;
oList[num].no = num;
oList[num].sctim = 0;
oList[num].move=listtextmove;
oList[num].lastyMove=0;
oList[num].setContent=setContent;
oList[num].headline=new Array();
oList[num].elements=new Array();
oList[num].sizes=new Array();
oList[num].types=new Array();
oList[num].visible=new Array();
oList[num].lmove=lmove;
oList[num].ldown=ldown;
oList[num].lup=lup;
oList[num].mousex=0;
oList[num].mousey=0;
oList[num].setSlider=setSlider;
oList[num].processSlider=processSlider;
oList[num].startSlider=startSlider;
oList[num].endSlider=endSlider;
oList[num].slidertimeout=false;
oList[num].cleanUpElements=cleanUpElements;
oList[num].setHeadline=setHeadline;
oList[num].setSizes=setSizes;
oList[num].setTypes=setTypes;
oList[num].setVisible=setVisible;
oList[num].addElement=addElement;
oList[num].getElement=getElement;
oList[num].alterElement=alterElement;
oList[num].delElement=delElement;
oList[num].showList=showList;
oList[num].resize=resizeList;
oList[num].setRowResizeFunction=setRowResizeFunction;
oList[num].ResizeFunction="";
oList[num].setRclickFunction=setRclickFunction;
oList[num].RclickFunction="";
oList[num].setDblclickFunction=setDblclickFunction;
oList[num].DblclickFunction="";
oList[num].setHeadlineFunction=setHeadlineFunction;
oList[num].HeadlineFunction="";
oList[num].sort=sort;
oList[num].sortrow=0;
oList[num].sortdir="asc";
oList[num].dontsort=false;
oList[num].select=select;
oList[num].lastSelect=-1;
oList[num].selectedId=-1;
oList[num].lastColor="";
oList[num].startX=0;
oList[num].startY=0;
oList[num].resizeRow=-1;
oList[num].currentRow=-1;
oList[num].showIt();
return oList[num];
}
function cleanUpElements()
{
this.elements=new Array();
}
function setHeadline(heads)
{
this.headline=heads;
}
function setSizes(sizes)
{
this.sizes=sizes;
}
function setTypes(types)
{
this.types=types;
}
function setVisible(vis)
{
this.visible=vis;
}
function setRowResizeFunction(fktname)
{
this.ResizeFunction=fktname;
}
function setDblclickFunction(fktname)
{
this.DblclickFunction=fktname;
}
function setRclickFunction(fktname)
{
this.RclickFunction=fktname;
}
function setHeadlineFunction(fktname)
{
this.HeadlineFunction=fktname;
}
function sort(no,dir)
{
function alp(a,b)
{
var r;
if(dir=="asc")
r=(a[no].toLowerCase()>b[no].toLowerCase());
else
r=(b[no].toLowerCase()>a[no].toLowerCase());
if(r==false)
r=-1;
else
r=1;
return r;
}
function num(a,b)
{
var ia=a[no].replace(/[,]/,".");
var ib=b[no].replace(/[,]/,".");
ia=ia.replace(/[a-zA-Z /]/,"");
ib=ib.replace(/[a-zA-Z /]/,"");
if(ia=="") ia=0;
if(ib=="") ib=0;
ia=parseFloat(ia);ib=parseFloat(ib);
if(dir=="asc")
return (ia-ib);
else
return (ib-ia);
}
if(this.dontsort!=true)
{
this.sortrow=no;
this.sortdir=dir;
if(this.types[no]==0)
this.elements.sort(alp);
else
this.elements.sort(num);
this.showList();
}
this.dontsort=false;
}
function addElement(element)
{
this.elements.push(element);
}
function delElement(elementid)
{
var newarr=new Array();
if(elementid!=-1)
{
var element;
for(index=0;index<this.elements.length;index++)
{
element=this.elements[index];
if(element[element.length-1]!=elementid)
newarr.push(element);
}
}
this.elements=newarr;
}
function getElement(elementid)
{
for(index=0;index<this.elements.length;index++)
{
element=this.elements[index];
if(element[element.length-1]==elementid)
return element;
}
}
function alterElement(elementid, newelement)
{
for(index=0;index<this.elements.length;index++)
{
element=this.elements[index];
if(element[element.length-1]==elementid)
{
this.elements[index]=newelement;
return true;
}
}
}
function showList()
{
var script="", dir, x=0;
var count=this.headline.length;
var startRow=Math.floor(-this.oListText.y/13)-1;
var endRow=Math.floor((-this.oListText.y+this.height+13)/13);
var content='<table id="tbList'+this.no+'" class="clListTable" border="0" cellspacing="0" cellpadding="0">';
content+='<tr class="clListHeadline"';
if(this.HeadlineFunction)
content+=' onContextMenu="'+this.HeadlineFunction+'();return false;"';
content+='>';
for(i=0;i<count;i++)
{
if(this.visible[i])
{
if(i==this.sortrow && this.sortdir=="asc")
dir="desc";
else
dir="asc";
content+='<td id="tbListHeadline'+this.no+'_'+i+'" style="width:'+this.sizes[i]+';" onClick="oList['+this.no+'].sort('+i+',\''+dir+'\');" nowrap> '+this.headline[i];
if(i!=0)
content+='<div id="tbListSep'+this.no+'_'+i+'" style="position:absolute; z-index:61; left:'+x+'; top: 2; width:1; height:10; background-color:#555555; overflow:hidden;"></div>';
content+='</td>';
x+=this.sizes[i];
}
}
content+='</tr>';
var element;
var elementName;
for(i=0;i<this.elements.length;i++)
{
element=this.elements[i];
content+='<tr id="e'+this.no+'_'+i+'" class="clListElements"';
// if(i==this.selectedId)
// content+=' style="background-color: #4444FF;"';
content+=' onClick="oList['+this.no+'].select('+i+');"';
if(this.DblclickFunction)
content+=' onDblclick="oList['+this.no+'].select('+i+');'+this.DblclickFunction+'('+element[element.length-1]+');return false;"';
if(this.RclickFunction)
content+=' onContextMenu="oList['+this.no+'].select('+i+');'+this.RclickFunction+'('+element[element.length-1]+');return false;"';
content+='>';
for(j=0;j<count;j++)
{
if(this.visible[j])
content+='<td nowrap>'+element[j];
}
widthset=true;
}
content+='</table>';
this.oListText.clipTo(0,x,(this.elements.length+1)*13+2*oList.borderSize,0,1);
this.setContent(content, "divListText"+this.no);
this.setSlider();
}
function resizeList(w,h)
{
this.width=w;
this.height=h;
var bs=oList.borderSize;
this.clipTo(0,w,h,0);
this.oList.clipTo(0,w-15-bs,h-15-bs,0,1);
this.oUp.moveIt(w-bs-15,1);
this.oDown.moveIt(w-bs-15,h-bs-30);
this.oLeft.moveIt(1,h-bs-15);
this.oRight.moveIt(w-bs-30,h-bs-15);
this.setSlider();
}
function setSlider()
{
var bs=oList.borderSize;
var sh=this.height-2*bs-45;
var size=(this.height-17-bs)/this.oListText.h;
if(size>1)
size=1;
var offset=-(this.oListText.y-1)/this.oListText.h;
this.oSliderY.moveIt(this.width-bs-14,bs+15+sh*offset);
this.oSliderY.resize(14,sh*size-2);
this.oSliderYtop.moveIt(this.width-bs-14,bs+15);
this.oSliderYtop.resize(14,sh*offset);
this.oSliderYbut.moveIt(this.width-bs-14,sh*(offset+size)+15);
this.oSliderYbut.resize(14,sh-sh*(offset+size));
var sw=this.width-2*bs-45;
size=(this.width-15-bs)/this.oListText.w;
//alert("Size:"+size+" Sw:"+sw);
if(size>1)
size=1;
if(this.oListText.w==0)
offset=0;
else
offset=-(this.oListText.x-1)/this.oListText.w;
this.oSliderX.moveIt(bs+15+sw*offset,this.height-bs-14);
this.oSliderX.resize(sw*size-2,14);
this.oSliderXleft.moveIt(bs+15,this.height-bs-14);
this.oSliderXleft.resize(sw*offset,14);
this.oSliderXright.moveIt(bs+13+sw*offset+sw*size,this.height-bs-14);
this.oSliderXright.resize(sw-sw*(offset+size),14);
}
function processSlider()
{
if(this.mousey!=0)
{
var y=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientY;
var bs=oList.borderSize;
var sh=this.height-2*bs-45;
var size=(this.height-13-bs)/this.oListText.h;
if(size>1)
size=1;
dy=y-this.mousey;
this.oSliderY.moveBy(0,dy);
var pos;
if(sh-(sh*size)!=0)
pos=(this.oSliderY.y-16)/(sh-(sh*size));
else
pos=0;
if(this.oSliderY.y-15<1)
this.oSliderY.moveIt(this.width-bs-14,15);
if(this.oSliderY.y-17>(sh-(sh*size)))
this.oSliderY.moveIt(this.width-bs-14,sh-(sh*size)+15);
var posY=-(this.oListText.h-this.oList.h)*pos;
if(posY>1)
posY=1;
else
this.mousey=y;
this.oListText.moveIt(this.oListText.x,posY);
}
if(this.mousex!=0)
{
var x=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX;
var bs=oList.borderSize;
var sw=this.width-2*bs-45;
var size=(this.width-15-bs)/this.oListText.w;
if(size>1)
size=1;
var offset=-(this.oListText.y-1)/this.oListText.h;
dx=x-this.mousex;
this.oSliderX.moveBy(dx,0);
var pos;
if(sw-(sw*size)!=0)
pos=(this.oSliderX.x-16)/(sw-(sw*size));
else
pos=0;
if(this.oSliderX.x-17<1)
this.oSliderX.moveIt(17,this.height-bs-14);
if(this.oSliderX.x-17>(sw-(sw*size)))
this.oSliderX.moveIt(sw-(sw*size)+17,this.height-bs-14);
var posX=-(this.oListText.w-this.oList.w)*pos;
if(posX>1)
posX=1;
else
this.mousex=x;
this.oListText.moveIt(posX,this.oListText.y);
}
return false;
}
function startSlider(x,y)
{
if(x)
this.mousex=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX;
else
this.mousex=0;
if(y)
this.mousey=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientY;
else
this.mousey=0;
}
function endSlider()
{
this.mousey=0;
this.mousex=0;
this.setSlider();
}
function select(id)
{
var obj=document.getElementById("e"+this.no+"_"+id);
if(this.lastSelect!=-1)
this.lastSelect.style.backgroundColor=this.lastColor;
this.lastColor=obj.style.backgroundColor;
obj.style.backgroundColor="#C2C8DA";
this.lastSelect=obj;
this.selectedId=id;
}
function ldown()
{
this.startX=((bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX)-this.xPos;
this.resizeRow=this.currentRow;
}
function lup()
{
if(this.resizeRow!=-1)
{
endX=((bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX)-this.xPos;
this.oResizeLine.hideIt();
this.sizes[this.resizeRow]-=this.startX-endX;
if(this.sizes[this.resizeRow]<5)
this.sizes[this.resizeRow]=5;
var obj=document.getElementById("tbListHeadline"+this.no+"_"+this.resizeRow);
obj.style.width=this.sizes[this.resizeRow];
var x=0;
for(i=0;i<this.headline.length;i++)
{
if(this.visible[i])
{
if(i!=0)
{
obj=document.getElementById("tbListSep"+this.no+"_"+i);
obj.style.left=x;
}
x+=this.sizes[i];
}
}
if(this.ResizeFunction!="")
{
eval(this.ResizeFunction+"("+this.resizeRow+","+this.sizes[this.resizeRow]+")");
}
this.resizeRow=-1;
this.dontsort=true;
this.oListText.clipTo(0,x,(this.elements.length+1)*13*oList.borderSize,0,1);
}
}
function lmove()
{
this.mouseX=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX;
if(this.resizeRow==-1)
{
this.currentRow=-1;
var x=this.xPos+this.oListText.x;
for(count=0;count<this.sizes.length;count++)
{
if(this.visible[count])
{
x+=this.sizes[count];
if(this.mouseX>x-2 && this.mouseX<x+2)
this.currentRow=count;
}
}
if(this.currentRow!=-1)
{
this.oListText.css.cursor="w-resize";
}
else
this.oListText.css.cursor="default";
}
else
{
this.oResizeLine.moveIt(this.mouseX-this.xPos,16);
this.oResizeLine.showIt();
this.oListText.css.cursor="w-resize";
}
}
function listtextmove(x,y)
{
clearTimeout(this.sctim);
var lt=this.oListText;
if(x!=0 || y!=0)
{
if(lt.x>=0 && x>0)
x=0;
if(lt.w+lt.x+17<=this.width && x<0)
x=0;
if(lt.y>=0 && y>0)
y=0;
if(lt.h+lt.y+17<=this.height && y<0)
y=0;
lt.moveBy(x,y);
if(lt.y>1)
lt.y=1;
if(lt.x>1)
lt.x=1;
if(lt.x+lt.w+15<this.width && this.width<lt.w)
lt.x=this.width-lt.w-15;
if(lt.y+lt.h+15<this.height && this.height<lt.h)
lt.y=this.height-lt.h-15;
lt.moveIt(lt.x,lt.y);
//alert("Lt.x:"+lt.x+" Lt.w:"+lt.w+" This.w:"+this.width);
this.setSlider();
this.sctim=setTimeout("oList["+this.no+"].move("+x+","+y+");",50);
}
return false;
}